package com.matt.repository.base;

import com.matt.foundation.DO.course.CourseTemplate2DO;
import com.matt.foundation.DO.course.WebCoursePageDO;
import com.matt.foundation.query.CourseAreaQuery;
import com.matt.foundation.query.CourseQuery;
import com.matt.foundation.vo.course.CourseAreaBuildVo;

import java.util.HashMap;
import java.util.List;

/**
 * *******************************
 * Created by Ron.
 * form com.matt
 * on 2018/1/23
 * *******************************
 */
public interface CourseAllRepository {

    List<Object[]> findTypeNameListGroupByType(Integer type);

    List<CourseTemplate2DO> findTemplate2ByTypeName(String typeName);

    List<Object[]> findAreaAllType(String areaId, Integer type);

    Long countCourseAreaByCondition(CourseAreaQuery query);

    List<Object[]> findCourseAreaBuildlListByCondition(CourseAreaQuery query);

    Long countCourseAreaBuildByCondition(CourseAreaQuery query);

    List<CourseAreaBuildVo> getCourseAreaBuildByCourseId(String areaId, String courseId);

    List<WebCoursePageDO> findCourseListByCondition(CourseQuery query);

    List<WebCoursePageDO> findCourseListByConditionV2(CourseQuery query,String coursePackageIds);

    Long countCourseListByCondition(CourseQuery query);

    Long countCourseListByConditionV2(CourseQuery query,String coursePackageIds);

    List<HashMap> findCourseCommonListByCondition(CourseAreaQuery query);

    List<Object[]> findKXThemeByAllType(Integer type);
}
